package org.orz.story.pms.biz.service;

import org.orz.story.pms.api.model.dto.DoAuthDto;
import org.orz.story.pms.biz.model.req.*;
import org.orz.story.pms.biz.model.resp.ListMenuInfoResp;
import org.orz.story.pms.biz.model.resp.MenuListResp;

import java.util.List;

public interface PmsPermissionService {
    /**
     * 认证+授权验证
     */
    void doAuth(DoAuthDto dto);

    /**
     * 查询系统管理端菜单列表
     */
    List<MenuListResp> getAdminMenuList();

    /**
     * 查询树形菜单列表
     */
    List<MenuListResp> listMenuInfoOfTree(ListMenuInfoOfTreeReq req);

    /**
     * 查询菜单列表
     */
    List<ListMenuInfoResp> listMenuInfo(ListMenuInfoReq req);

    /**
     * 添加权限
     */
    void addPermission(AddPermissionReq req);

    /**
     * 修改权限
     */
    void updatePermission(UpdatePermissionReq req);

    /**
     * 删除权限
     */
    void deletePermission(DeletePermissionReq req);

    /**
     * 给角色赋予权限
     */
    void grantPermission(GrantPermissionReq req);

    /**
     * 权限新增接口
     */
    void addPermissionApi(GrantPermissionApiReq req);

    /**
     * 权限删除接口
     */
    void deletePermissionApi(DeletePermissionApiReq req);

}
